// 引入请求工具
const { wxLogin } = require('../../utils/request.js');

Page({
  data: {
    loading: false,      // 登录加载状态
    showCard: false,     // 控制卡片显示动画
    showTip: false       // 控制健康提示显示
  },

  /**
   * 页面加载
   */
  onLoad: function (options) {
    console.log('[登录页] 页面加载');
    this.checkLogin();
  },

  /**
   * 检查用户是否已登录
   */
  checkLogin: function() {
    console.log('[登录页] 检查用户是否已登录');
    try {
      const token = wx.getStorageSync('token');
      console.log('[登录页] 本地存储token状态:', token ? '已存在' : '不存在');
      
      if (token) {
        console.log('[登录页] 检测到token，准备跳转到主页');
        wx.switchTab({
          url: '/pages/health/health'
        });
      } else {
        console.log('[登录页] 未检测到token，显示登录页');
        // 开始执行显示动画
        this.startAnimations();
      }
    } catch (e) {
      console.error('[登录页] 获取token失败:', e);
      // 出错也执行显示动画
      this.startAnimations();
    }
  },

  /**
   * 开始执行动画序列
   */
  startAnimations: function() {
    // 显示卡片的动画
    setTimeout(() => {
      this.setData({ showCard: true });
      
      // 显示健康提示的动画
      setTimeout(() => {
        this.setData({ showTip: true });
      }, 800);
    }, 300);
  },

  /**
   * 页面显示
   */
  onShow: function() {
    console.log('[登录页] 页面显示');
  },

  /**
   * 微信登录
   */
  async handleWechatLogin() {
    console.log('[登录页] 点击了微信登录按钮');
    this.setData({ loading: true });
    
    try {
      // 请求用户授权获取信息
      let userInfo = null;
      try {
        console.log('[登录页] 请求用户授权');
        const userProfile = await wx.getUserProfile({
          desc: '用于完善您的健康管理信息'
        });
        userInfo = userProfile.userInfo;
        console.log('[登录页] 获取用户信息成功', userInfo);
      } catch (err) {
        console.log('[登录页] 用户拒绝授权获取信息或获取失败', err);
        // 继续登录但不提供用户信息
      }
      
      // 显示加载提示
      wx.showLoading({
        title: '登录中...',
        mask: true
      });
      
      // 调用微信登录API
      console.log('[登录页] 调用微信登录API');
      const result = await wxLogin(userInfo);
      
      // 隐藏加载提示
      wx.hideLoading();
      
      console.log('[登录页] 登录结果', result);
      
      if (result.success) {
        console.log('[登录页] 登录成功，检查token是否存在', !!result.token);
        
        if (result.token) {
          // 保存令牌 (应该已经在wxLogin中保存过了，这里再确保一次)
          wx.setStorageSync('token', result.token);
          console.log('[登录页] 保存token成功');
          
          // 显示登录成功提示
          wx.showToast({
            title: '登录成功',
            icon: 'success',
            duration: 1500
          });
          
          // 延迟跳转，让用户看到成功提示
          setTimeout(() => {
            // 跳转到主页
            console.log('[登录页] 跳转到主页');
            wx.switchTab({
              url: '/pages/health/health'
            });
          }, 1500);
        } else {
          wx.showToast({
            title: '登录失败',
            icon: 'none',
            duration: 2000
          });
          console.error('[登录页] 登录成功但没有token');
        }
      } else {
        wx.showToast({
          title: '登录失败',
          icon: 'none',
          duration: 2000
        });
        console.error('[登录页] 登录失败', result);
      }
    } catch (error) {
      // 隐藏加载提示
      wx.hideLoading();
      
      wx.showToast({
        title: '登录失败',
        icon: 'none',
        duration: 2000
      });
      console.error('[登录页] 登录过程发生错误:', error);
    } finally {
      this.setData({ loading: false });
    }
  }
}); 